Computer applications are generally built to run on a particular computing platform or application environment. For example applications built for a PC are often built to run in and on a Microsoft Windows application environment. Applications that are built using Flash's Actionscript are built to run in a Flash application environment. Mobile applications for Android phones are built to run in an Android OS platform, whereas mobile applications built for Apple's iPhone are built to run in Apple's iOS platform.
As new and different platforms arise, such as in mobile computing, a problem that application developers often face is the lack of ability to deliver existing application assets to the new platforms without extensive application redevelopment. This is especially but not exclusively true for developers that have traditionally developed applications for non-mobile devices. As the user base quickly moves to consuming content on the Internet with mobile devices, there is an increased need to make existing applications built for non-mobile devices, be available on mobile devices.
The problem is also true for developers of mobile applications. Because mobile applications are also often written for specific platforms, it is generally not possible to deliver applications built for one specific mobile platform, such as, for example, the Android platform, to another mobile platform, such as, for example, Apple's iOS platform.
Although applications can be redeveloped for new and popular computing environments, this may be problematic for various reasons. For example, the developer may not have the money, skills, or knowledge required to redevelop their applications in a new computing environment. Also, the developer may not have the specific technical programming skills and knowledge required to develop applications on the new platform. It may also not be easy to determine which of various competing environments would be most successful in order to select such an environment to redevelop an existing application. The time-to-market delay for the application developer to redevelop the application may affect the company's competitiveness and market share, deterring the developer from redeveloping the application.
One common solution to the problem of hosting applications written for one platform on a different platform is emulation software. Emulation software provides a simulated environment of the original environment on the new platform. However providing emulation software for mobile platforms is problematic for several reasons. In some cases, the original environment to be emulated may be too complex to be implemented within the technical constraints of the mobile platform. Even if the original environment could be emulated on the mobile device, constraints in terms of memory or processing speed or external storage, may not allow the application to run properly or at all on the mobile devices. Other business impediments imposed by the developer of the mobile device environment may also prohibit emulation.
Thus, there is a need for a system and method that allows application developers to leverage existing application assets to reach a wider audience than what was originally intended, that is, audience on new computing devices, platforms, and/or application environments, and to do so without incurring the time delays and cost associated with redeveloping applications for the new devices and platforms.